package com.atguigu.redis;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

/**
 * Created by Smexy on 2022/8/20
 */
public class JedisCustomPoolDemo
{

    public static void main(String[] args) {

        //创建一个连接池配置对象
        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
        jedisPoolConfig.setMaxTotal(10); //最大可用连接数
        jedisPoolConfig.setMaxIdle(5); //最大闲置连接数
        jedisPoolConfig.setMinIdle(5); //最小闲置连接数
        jedisPoolConfig.setBlockWhenExhausted(true); //连接耗尽是否等待
        jedisPoolConfig.setMaxWaitMillis(2000); //等待时间
        jedisPoolConfig.setTestOnBorrow(true); //取连接的时候进行一下ping
        jedisPoolConfig.setTestOnReturn(true); //还连接的时候进行一下ping

        //创建一个存放客户端连接的池子
        JedisPool jedisPool = new JedisPool(jedisPoolConfig,"hadoop102", 6379);

        //从池子中借一个连接
        Jedis jedis = jedisPool.getResource();

        //向服务端发送命令
        String res = jedis.ping();

        //如果是读操作，解析返回的结果
        System.out.println(res);

        //将连接还回池子
        //如果连接是从池中借来的，自动还回池子，如果不是借的，是直接new的，那么就关闭
        jedis.close();

    }
}
